Sections
PpgDex — Technical Reference

Pulse, Morphology &
Optical HRV

Reference for every metric PpgDex computes from a raw wrist- or arm-worn photoplethysmogram — definitions, formulas, expected ranges, and the evidence base behind each. PpgDex is ECGDex’s optical twin: once the waveform becomes a pulse-interval series the downstream HRV math is shared. What is unique here is the optical front end (soft-upstroke beat detection, an ACC + GYRO motion gate) and pulse-wave morphology. Companion to the analyzer output; not a substitute for clinical evaluation.

⚠️
Important: values derive from a consumer optical pulse sensor worn on the wrist or upper arm — not clinical PPG or ECG, and not a diagnosis. Optical pulse intervals (PPI) support valid time-domain HRV, but pulse-rate variability is not interchangeable with ECG RR-interval HRV — pulse-arrival-time jitter inflates beat-to-beat variability, especially under motion (Schäfer & Vagedes 2013). Morphology and reflection indices are reflectance-optical and device-dependent.
Evidence Measured Validated Emerging Experimental Heuristic fill = trust · hover a badge for source
🩻
Signal & Beat Detection
From raw optical waveform to a corrected pulse-to-pulse interval series
ℹ️
Pipeline. Polar Sensor Logger streams the Verity Sense optical channels (~176 Hz, 3 channels + ambient). PpgDex picks the best-SNR channel, band-passes 0.5–8 Hz, orients the waveform so systolic upstrokes point up, detects systolic peaks and intersecting-tangent feet, then builds PPI → HRV. Timestamps follow the Clock Contract (floating wall-clock, read back via getUTC*).
Pulse HRMean Heart Rate
Core

Mean heart rate over the recording, from detected pulse-peak intervals. On long recordings the displayed value is the median of per-epoch HR.

Formula
HR = 60000 / mean(PPI_ms)
Resting HR (bpm)Read
50–65Low–normal (rested/trained)
66–75Typical sleeping HR
76–90Elevated
> 90High
% AnalyzableFraction of Recording Usable
Core

Share of the recording that survived both the per-pulse quality gate and the motion gate — the best at-a-glance trust indicator.

Formula
% Analyzable = cleanPulse% × (1 − motionRejected%)
% AnalyzableConfidence
≥ 85%High — reliable
60–85%Moderate
< 60%Low — HRV unreliable
Mean SQISignal-Quality Index
Advanced

Mean per-pulse quality, combining template correlation, amplitude and the local motion index. A separate axis from event confidence.

Formula
SQI = max(0, corr(beat,template)) × (0.4 + 0.6·(1−motion))
Mean SQIRead
≥ 0.7Clean trace
0.5–0.7Usable, some artifact
< 0.5Noisy — caveat applied
Clean pulses% Pulses with SQI ≥ 0.5
Advanced

Share of detected pulses passing the SQI threshold — the quality side of the analyzability budget, before the motion gate.

Formula
Clean pulses% = count(SQI ≥ 0.5) / nPulses × 100
Read together with Motion-rejected to get % Analyzable.
Correction% PPIs Corrected
Advanced

Fraction of raw pulse intervals replaced during cleaning, gated against a robust running median of accepted intervals.

Formula
Correction% = corrected / nIntervals × 100
CorrectionRead
< 5%Excellent
5–20%Moderate — HRV attenuated
> 20%HRV unreliable
Mean PPIMean Pulse-to-Pulse Interval
Research

The average foot-to-foot interval (ms) — the optical analogue of the mean NN interval; the reciprocal of mean HR.

Formula
Mean PPI = mean(foot[i] − foot[i−1]) × 1000
Inverse of Pulse HR — read on the HR bands above.
↑ back to index
💡
Perfusion & Quality
Optical contact, pulsatility, and the ACC+GYRO motion gate — PpgDex’s signature
Perfusion IdxPerfusion Index (AC / DC)
Advanced

Ratio of pulsatile (AC) to steady (DC) optical signal — how strong the pulse is at the sensor. Low PI flags weak contact or vasoconstriction and predicts noisier HRV.

Formula
PI (%) = 100 × SD(band-passed) / mean|raw|
PI (%)Read
> 2Strong perfusion
0.5–2Weak — loose fit / vasoconstriction
< 0.5Very weak — unreliable
Motion-rejected% Pulses Gated by Motion
Advanced

Share of pulses occurring during high-motion spans (motion index > 0.5) and down-weighted. The inertial gate is what separates true pulse variability from movement artifact.

Formula
motionIndex = max( accDynamic/120mg , gyro/40dps ), 4 Hz grid
Lower is better; high values shrink % Analyzable.
Mean motion idxMean Inertial Motion Index
Advanced

Average of the 0–1 motion index across the recording — an overall restlessness summary.

Formula
Mean motion idx = mean(motionGrid)
Relative measure — compare across your own matched recordings; no single clinical cut-point.
ACC HzAccelerometer Sample Rate
Research

Effective accelerometer sample rate recovered from the inertial stream — surfaced for provenance and diagnosing thin motion data.

Formula
ACC Hz = nAcc / durSec
Device statistic, not a target.
GYRO HzGyroscope Sample Rate
Research

Effective gyroscope sample rate. Gyro-only sessions still drive the motion gate but cannot resolve posture.

Formula
GYRO Hz = nGyro / durSec
Device statistic, not a target.
↑ back to index
📈
HRV — Time Domain
Beat-to-beat variability from pulse intervals (valid once the PPI series is clean)
⏱️
Duration tiers gate validity. Ultra-short (<5 min): HR, rMSSD, pNN50, SD1, HF valid; SDNN/LF withheld. Short (5-min standard): full suite. Overnight (≥90 min): adds per-epoch medians and CVHR.
rMSSDRoot Mean Square of Successive Differences
Advanced

The primary parasympathetic (vagal) marker — valid even on short windows. Tracks ECG rMSSD at rest but runs slightly higher under motion.

Formula
rMSSD = √( mean( (NN[i+1]−NN[i])² ) )
rMSSD (ms)Read
> 42High vagal tone
20–42Typical
< 20Low — stress/fatigue
SDNNStandard Deviation of NN Intervals
Advanced

Overall HRV — total autonomic variability. Withheld on ultra-short windows where it is not interpretable.

Formula
SDNN = √( Σ(NN−mean)² / (N−1) )
SDNN (ms)Read
> 50Healthy
30–50Moderate
< 30Reduced
ln rMSSDNatural-Log rMSSD
Advanced

rMSSD on a log scale — the right-skew correction that makes day-to-day readiness changes roughly linear.

Formula
ln rMSSD = ln(rMSSD)
Track the trend vs your own baseline.
pNN50% Successive Intervals > 50 ms
Advanced

Percentage of successive interval pairs differing by more than 50 ms — a vagally-mediated measure.

Formula
pNN50 (%) = count(|ΔPPI| > 50 ms) / (N−1) × 100
pNN50Read
> 15%High vagal activity
3–15%Typical
< 3%Low
↑ back to index
🌀
HRV — Poincaré (Nonlinear Geometry)
Scatter of each interval against the next — short- vs long-term variability
SD1Poincaré Short-Term Width
Research

Dispersion perpendicular to the line of identity — instantaneous beat-to-beat variability, tied to rMSSD.

Formula
SD1 = √(0.5) × SD(ΔNN) ≈ rMSSD/√2
Tracks rMSSD; read on the rMSSD bands.
SD2Poincaré Long-Term Width
Research

Dispersion along the line of identity — longer-term variability, related to SDNN.

Formula
SD2 = √( 2·SDNN² − 0.5·SD(ΔNN)² )
Tracks SDNN; read on the SDNN bands.
SD1/SD2Poincaré Ratio
Research

Balance of short- to long-term variability.

Formula
ratio = SD1 / SD2
Relative measure — compare across your own matched recordings; no single clinical cut-point.
Ellipse areaPoincaré Ellipse Area
Research

Area of the fitted Poincaré ellipse — a single geometric summary of overall dispersion.

Formula
area = π × SD1 × SD2
Relative measure — compare across your own matched recordings; no single clinical cut-point.
↑ back to index
📶
HRV — Frequency Domain
Spectral power of the pulse-interval series via Lomb–Scargle
ℹ️
Why Lomb–Scargle. Pulse intervals are unevenly spaced, so PpgDex uses the Lomb–Scargle periodogram rather than an FFT that would need resampling. Frequency-domain HRV from optical PPI is more device-dependent than time-domain — graded emerging.
LF/HFLow/High Frequency Ratio
Research

Ratio of low- (0.04–0.15 Hz) to high-frequency (0.15–0.40 Hz) power. Historically read as sympatho-vagal balance, contested — treat as directional.

Formula
LF/HF = power[0.04–0.15 Hz] / power[0.15–0.40 Hz]
Relative measure — compare across your own matched recordings; no single clinical cut-point.
VLF / LF / HF PowerBand Powers & Normalised Units
Research

Absolute power in the very-low, low and high bands plus normalised units (LFnu, HFnu). HF aligns with respiratory sinus arrhythmia; VLF needs an overnight-length record.

Formula
HFnu = 100×HF/(LF+HF) ; LFnu = 100×LF/(LF+HF)
Relative measure — compare across your own matched recordings; no single clinical cut-point.
↑ back to index
♾️
HRV — Nonlinear & Complexity
Fractal scaling and signal regularity of the interval series
DFA α1Detrended Fluctuation Analysis (short-term)
Research

Short-term fractal scaling of the interval series (4–16 beats). α1 ≈ 1 marks healthy correlated dynamics. Sensitive to record length and editing.

Formula
α1 = slope of log F(n) vs log n, n = 4…16 beats
DFA α1Read
0.85–1.15Healthy correlated dynamics
< 0.75 / > 1.25Toward random / rigid
SampEnSample Entropy
Research

Regularity of the interval series — lower means more repetitive dynamics. A node-computed complexity descriptor on optical PPI.

Formula
SampEn(m,r) = −ln(A/B), m=2, r=0.2×SD
Relative measure — compare across your own matched recordings; no single clinical cut-point.
↑ back to index
🫀
Pulse-Wave Morphology
The shape of the pulse itself — something neither OxyDex nor ECGDex can produce
ℹ️
From a median pulse. PpgDex foot-aligns and amplitude-normalises high-SQI beats into one median pulse, then delineates fiducials (foot → systolic peak → dicrotic notch → diastolic peak) and the second-derivative wave (SDPPG). Reflectance wrist optics make the late waves noisy, so reflection/aging indices emit only when their fiducials resolve — all graded emerging, device-dependent.
Rise timeFoot → Systolic-Peak Time
Advanced

Time from pulse foot to systolic peak (crest time) — a direct timing fiducial that lengthens with vascular stiffening.

Formula
riseTime = (systolicPeak − foot) / fs × 1000 ms
Relative measure — compare across your own matched recordings; no single clinical cut-point.
Pulse widthWidth at Half Systolic Amplitude
Research

Full width of the pulse at 50% of its systolic amplitude — a direct timing measure related to vascular resistance.

Formula
pulseWidth at y = foot + 0.5·amp
Relative measure — compare across your own matched recordings; no single clinical cut-point.
Notch timeFoot → Dicrotic-Notch Time
Research

Timing of the dicrotic notch relative to the foot — marks the systolic–diastolic transition. Emitted only when a notch is detected.

Formula
notchTime = (notch − foot) / fs × 1000 ms
Relative measure — compare across your own matched recordings; no single clinical cut-point.
Dicrotic notchNotch Detection
Advanced

Whether a dicrotic notch and following diastolic peak are resolvable on the downslope — gates the reflection indices below.

Formula
notch = max positive d²/dt² on downslope + diastolic local max
Presence/absence flag; device- and perfusion-dependent.
Aug. indexAugmentation Index
Research

Relative height of the reflected (diastolic) wave vs the systolic peak — an arterial-reflection / stiffness proxy. Typically negative in young arteries.

Formula
AI (%) = 100 × (P2 − P1) / P1
Relative measure — compare across your own matched recordings; no single clinical cut-point.
Reflection indexDiastolic ÷ Systolic Peak
Research

Reflected (diastolic) peak as a fraction of the systolic peak — rises with arterial stiffening.

Formula
RI = P2 / P1
Relative measure — compare across your own matched recordings; no single clinical cut-point.
SDPPG b/a2nd-Derivative b/a Ratio
Research

Ratio of the early-systolic b wave to the a wave of the acceleration-PPG — the most age/stiffness-correlated SDPPG index; strongly negative in young compliant arteries, rising toward 0 with stiffening.

Formula
b/a = SDPPG_b / SDPPG_a
Relative measure — compare across your own matched recordings; no single clinical cut-point.
Aging indexSDPPG Aging Index
Research

Composite of the five SDPPG waves (a–e), a published vascular-aging proxy that rises with arterial age. Emitted only when all five fiducials resolve.

Formula
AGI = (b − c − d − e) / a
Relative measure — compare across your own matched recordings; no single clinical cut-point.
↑ back to index
💤
CVHR — Cyclical Variation of Heart Rate
Apnea autonomic signature read from the pulse-interval series
CVHR indexCyclical-Variation-of-HR Index
Advanced

Rate of cyclic bradycardia–tachycardia oscillations per hour — the autonomic fingerprint of repetitive apnea/arousal, from pulse intervals alone. A screen, not a diagnosis; corroborated against oximetry in the Integrator.

Formula
CVHR index = cyclic dip–surge events / hour (overnight tier)
CVHR index (/h)Screen
< 5Low
5–15Moderate — consider SDB screen
> 15High — corroborate with SpO₂
↑ back to index
🧮
Composite & Projections
Derived readiness scores and population projections — directional, not measurements
HRV ScoreAutonomic-Readiness Composite
Core

A 0–100 readiness headline blending vagal HRV against your recent baseline. An internal composite, not externally validated.

Method
blend of ln rMSSD and HRV vs baseline
Internal — directional, baseline-relative.
VO₂max EstEstimated VO₂max
Research

A resting HR-ratio fitness estimate — a population proxy, not a cardiopulmonary exercise test.

Formula
VO₂max ≈ 15 × (HRmax / HRrest)
Heuristic proxy — track the trend, not the absolute.
↑ back to index
🧭
Posture & Magnetometer
Limb orientation and heading — lower-reliability context, surfaced for cross-node parity
⚠️
Limb orientation, not body position. The Verity Sense is worn on the wrist or upper arm and the wear site is not auto-detected — so posture here is the limb’s orientation, an approximate proxy. A chest strap (ECGDex) is far better; the Integrator down-weights it heavily (positionSource: limb-acc). Magnetometer data is used only at Earth-field scale (heading, L/R disambiguation, interference flag) — never biomagnetic HR.
PostureLimb Orientation
Research

Body/limb position class from the gravity vector, with left/right lateral split by magnetometer heading when available. Off-data windows resolve to unknown, never fabricated.

Method
gravity = lowpass(ACC) → supine/prone/upright/lateral
Low-reliability proxy; heavily down-weighted in fusion.
HeadingTilt-Compensated Magnetic Heading
Research

Relative magnetic heading of the limb (deg), gravity-component removed. Uncalibrated for true north — used only to separate left- from right-side lateral posture.

Method
tilt-compensated heading from mag − gravity projection
Relative datum; L/R labels may mirror without a calibration gesture.
Mag interferenceMagnetic-Field Disturbance Flag
Research

A calibration-free quality flag: set when the field magnitude wobbles in a still window or sits >25% off baseline. Informational only — it does not alter beat SQI here.

Formula
flag if SD(|B|) > threshold or |median−baseline|/baseline > 0.25
Quality flag; the Integrator decides how to weight it.
↑ back to index
Device-PPI Validation
PpgDex’s own beat detection checked against Polar’s on-device PPI stream
ℹ️
Validation lane only. When a Polar *_PPI.txt file accompanies the raw PPG, PpgDex compares its own foot-derived intervals against the device’s reported pulse intervals (excluding device-flagged blocked beats) — a self-check on the optical detector.
AgreementSelf-PPI vs Device-PPI Agreement
Advanced

Mean agreement between PpgDex’s pulse intervals and the device’s — high agreement confirms the optical detector tracks the same beats as Polar’s firmware.

Formula
Agreement (%) = 100 × (1 − |meanSelf − meanDevice| / meanDevice)
AgreementRead
≥ 97%Excellent concordance
90–97%Acceptable
< 90%Divergent — inspect motion/contact
Mean abs devMean Absolute PPI Deviation
Research

Average absolute difference (ms) between self- and device-derived mean pulse intervals — the agreement metric in raw milliseconds.

Formula
meanAbsDev = |mean(selfPPI) − mean(devicePPI)|
Lower is better; pairs with Agreement %.
↑ back to index
📡
Signal Quality & Artifact Flags
How PpgDex marks what it could not trust — absence stays visible, never fabricated
Motion artifact segmentContiguous High-Motion Span
Core

A flagged interval where the motion index stayed above 0.5 across consecutive beats. Emitted as a low-prior quality event so consumers can exclude the span.

Formula
run where motionAtSec(beat) > 0.5
Quality flag, not a metric target.
Off-body / low perfusionMissing-Contact Handling
Advanced

Spans with collapsed perfusion or no resolvable pulse are excluded from HRV rather than filled. Unparseable timestamps surface as null (Clock Contract), never “now.”

Formula
exclude spans where PI collapses / no peak detected
Absence stays visible; never fabricated.
↑ back to index
✔️
Validation Status Matrix
What is literature-validated versus experimentally derived — the key provenance table for research use

Validation refers to the underlying metric’s validation in published literature, and does not imply validation of the PpgDex implementation against a gold-standard laboratory dataset.

Metric CategoryStatusBasis
Pulse HR, perfusion, SQI, coverage, motion, ACC/GYRO Hz, agreement● Direct measurementRaw optical / inertial / quality statistics
rMSSD, SDNN, ln rMSSD, pNN50, SD1, SD2● Literature-basedTask Force 1996 (on optical PPI — see PRV caveat)
Rise/notch time, pulse width● Direct measurementPulse-wave fiducial timing
SD1/SD2, ellipse area, LF/HF, DFA α1, CVHR, dicrotic/AI/RI/SDPPG/AGI◐ EmergingPublished but device-dependent (reflectance optics)
SampEn; HRV Score○ ExperimentalNode-computed; not externally validated on optical PPI
Posture / heading; VO₂max○ Proxy / population-derivedLimb-orientation proxy; population projections
Metric Tier Definitions
TierMeaningExamples
CoreHeadline, universally interpretablePulse HR, % Analyzable, HRV Score
AdvancedEstablished support, fuller analysisrMSSD, SDNN, perfusion, dicrotic notch, CVHR
ResearchExploratory / emerging / device-dependentSDPPG, AI/RI, DFA, posture, projections
↑ back to index
🗺️
Formula → Citation Map
Every computed metric mapped to its primary source
Metric / FormulaPrimary CitationCategory
PPG signal & pulse analysisAllen 2007; Elgendi 2012PPG
PRV vs HRV caveatSchäfer & Vagedes 2013PRV
rMSSD, SDNN, pNN50, LF/HFTask Force 1996HRV
SD1/SD2 PoincaréBrennan 2001HRV
DFA α1Peng 1995Nonlinear
Sample entropyRichman & Moorman 2000Nonlinear
SDPPG b/a, aging index, augmentationTakazawa 1998Morphology
Perfusion index (AC/DC)Lima 2002Perfusion
CVHR (cyclical variation of HR)Guilleminault 1984CVHR
Lomb–Scargle spectral estimationLomb 1976 / Scargle 1982Spectral
VO₂max (HR-ratio)Uth–Sørensen 2004Projection
HRV ScorePpgDex internal — no external sourceInternal
↑ back to index
𝑓
Formula Provenance Index
Compact audit index — every external formula mapped to its source
FormulaSource / AuthorYearReference
PPG clinical measurement (overview)Allen J2007Physiol Meas. 28(3):R1–39
PRV vs HRV accuracySchäfer & Vagedes2013Int J Cardiol. 166(1):15–29
Time-domain HRV standardsTask Force ESC/NASPE1996Circulation. 93(5):1043–65
SD1/SD2 Poincaré geometryBrennan et al.2001IEEE TBME. 48(11):1342–7
DFA α1Peng et al.1995Chaos. 5(1):82–7
SDPPG b/a & aging indexTakazawa et al.1998Hypertension. 32(2):365–70
Perfusion indexLima et al.2002Crit Care Med. 30(6):1210–3
Cyclical variation of heart rateGuilleminault et al.1984Lancet. 1(8369):126–31
VO₂max = 15·(HRmax/HRrest)Uth, Sørensen et al.2004Eur J Appl Physiol. 91(1):111–5
↑ back to index
⚠️
Known Limitations
The interpretation context for consumer optical pulse analysis
ℹ️
These limitations are inherent to reflectance wrist/arm photoplethysmography. They do not invalidate PpgDex outputs but define the appropriate interpretation context.
📳 Device & Sampling
  • Consumer optical sensor (Polar Verity Sense), wrist or upper arm
  • Reflectance PPG — motion- and contact-sensitive
  • Pulse intervals (PPI), not ECG R-R intervals
  • Wear site not auto-detected — posture is limb orientation
🧠 Physiological Equivalence
  • PRV approximates HRV at rest; diverges under motion
  • Morphology / reflection indices are device-dependent proxies
  • CVHR is an SDB screen, not a diagnosis
  • No EEG — no sleep staging claims
📊 Algorithmic
  • HRV Score is an internal composite, not externally validated
  • ANS age / VO₂max are population projections
  • Late SDPPG waves (c,d,e) are noisy on reflectance optics
  • Heavy correction attenuates HRV — check Correction %
⚖️ Regulatory
  • Not FDA cleared or CE marked as a medical device
  • Not for clinical diagnosis or treatment decisions
  • Personal, research, and wellness use only
  • Discuss medical concerns with a qualified clinician
↑ back to index
📚
Academic References
Primary sources for every method PpgDex computes
⚠️
Provenance note. Internal composites (HRV Score, ANS-age scaling) carry no external source and are labelled as such. Where PpgDex shares a method with the other cardiac nodes it uses the same verified sources.
Method / MetricPrimary CitationCategory
PPG signal & clinical use (overview)Allen J. Photoplethysmography and its application in clinical physiological measurement. Physiol Meas. 2007;28(3):R1–R39. doi: 10.1088/0967-3334/28/3/R01PPG
PPG fiducials / pulse analysisElgendi M. On the analysis of fingertip photoplethysmogram signals. Curr Cardiol Rev. 2012;8(1):14–25. doi: 10.2174/157340312801215782PPG
Pulse-rate vs heart-rate variabilitySchäfer A, Vagedes J. How accurate is pulse rate variability as an estimate of heart rate variability? Int J Cardiol. 2013;166(1):15–29. doi: 10.1016/j.ijcard.2012.03.119PRV vs HRV
HRV standards (rMSSD, SDNN, pNN50, bands)Task Force of the ESC and NASPE. Heart rate variability: standards of measurement… Circulation. 1996;93(5):1043–65. doi: 10.1161/01.CIR.93.5.1043HRV
Poincaré SD1 / SD2Brennan M, Palaniswami M, Kamen P. Do existing measures of Poincaré plot geometry reflect nonlinear features of HRV? IEEE Trans Biomed Eng. 2001;48(11):1342–7. doi: 10.1109/10.959330HRV
DFA α1Peng C-K, et al. Quantification of scaling exponents… Chaos. 1995;5(1):82–7. doi: 10.1063/1.166141Nonlinear
Sample EntropyRichman JS, Moorman JR. Physiological time-series analysis using approximate entropy and sample entropy. Am J Physiol Heart Circ Physiol. 2000;278(6):H2039–49. doi: 10.1152/ajpheart.2000.278.6.H2039Nonlinear
SDPPG b/a & aging index; augmentationTakazawa K, et al. Assessment of vasoactive agents and vascular aging by the second derivative of photoplethysmogram waveform. Hypertension. 1998;32(2):365–70. doi: 10.1161/01.HYP.32.2.365Morphology
Perfusion index (AC/DC)Lima AP, Beelen P, Bakker J. Use of a peripheral perfusion index derived from the pulse oximetry signal. Crit Care Med. 2002;30(6):1210–3. doi: 10.1097/00003246-200206000-00006Perfusion
Cyclical variation of heart rate (CVHR)Guilleminault C, et al. Cyclical variation of the heart rate in sleep apnoea syndrome. Lancet. 1984;1(8369):126–31. doi: 10.1016/S0140-6736(84)90062-XCVHR
VO₂max (HR-ratio method)Uth N, Sørensen H, et al. Estimation of VO₂max from the ratio between HRmax and HRrest. Eur J Appl Physiol. 2004;91(1):111–5. doi: 10.1007/s00421-003-0988-yProjection
HRV Score; ANS-age scalingPpgDex internal composites — no external source. Directional only.Internal
↑ back to index
🔠
Abbreviation Index
Every acronym used in this guide — searchable, jump to its section
terms
↑ back to index
📋
Project Credits
Authorship, contributions, and open-source provenance
Author
Michal Planicka
Concept · Architecture · Algorithms
Implementation · Validation · UI/UX
Assisted Development
AI-Assisted
Code review · Documentation
Literature synthesis · Reference formatting
Licence & Suggested Citation
Apache-2.0 Open-source
Planicka M. PpgDex: Optical Pulse HRV & Morphology Node. Version 1.0.0. 2026.
↑ back to index
Reference Guide Version: 1.0.0  ·  Node: PpgDex — optical pulse HRV & morphology  ·  Last Literature Review: June 2026  ·  Apache-2.0 Licence
Intended use & safety

Tepna computes biometric patterns from your wearable and sensor data to support personal self-quantification. It is not a medical device, does not diagnose, treat, cure, screen for, or prevent any disease or condition, and is not a substitute for professional clinical evaluation. It has not been reviewed or cleared by the FDA, CE, or any regulatory body. Always consult a qualified healthcare provider about your health. Use at your own risk. For research and personal use only. 100% local — no data leaves your device.

T Tepna physiological-signal suite
© 2026 Michal Planicka — Concept · Architecture · Algorithms Not a medical device · does not diagnose or treat · not FDA/CE cleared · research & personal use only · ◈ Made in Asheville, NC
licenceApache-2.0